حافظه و انواع آن در كامپیوتر
حافظه با هدف ذخیره سازی اطلاعات ( دائم ، موقت ) در كامپیوتر استفاده می گردد. انواع متفاوتی از حافظه دركامپیوتر استفاده می شود:
· RAM
· ROM
· Cache
· DynamicRAM
· StaticRAM
· FlashMemory
· VirtualMemory
· VideoMemory
· BIOS
استفاده از حافظه صرفا" محدود به كامپیوترهای شخصی نبوده و در دستگاههای متفاوتی نظیر : تلفن های سلولی،PDA، رادیوهای اتومبیل،VCR، تلویزیون و ... نیز در ابعاد وسیعی از آنها استفاده می شود.هر یك از دستگاه های فوق مدل های متفاوتی از حافظه را استفاده می كنند.
مبانی اولیه حافظه
با اینكه می توان واژه " حافظه " را بر هر نوع وسیله ذخیره سازی الكترونیكی اطلاق كرد، ولی اغلب ازاین واژه برای مشخص نمودن حافظه های سریع با قابلیت ذخیره سازی موقت استفاده می شود. در صورتیكه پردازنده مجبور باشد برای بازیابی اطلاعات مورد نیاز خود بصورت دائم از هارد دیسك استفاده كند، قطعا" سرعت عملیات پردازنده ( با آن سرعت بالا) كند خواهد گردید. زمانیكه اطلاعات مورد نیاز پردازنده در حافظه ذخیره گردند، سرعت عملیات پردازنده از بعد دستیابی به داده های مورد نیاز بیشتر خواهد گردید. از حافظه های متعددی به منظور نگهداری موقت اطلاعات استفاده می گردد.
همانگونه كه در شكل فوق مشاهده می گردد، مجموعه متنوعی ازانواع حافظه ها وجود دارد . پردازنده با توجه به ساختار سلسله مراتبی فوق به آنها دستیابی پیدا خواهد كرد. زمانیكه در سطح حافظه های دائمی نظیر هارد یا حافظه دستگاه هائی نظیر صفحه كلید، اطلاعاتی موجود باشد كه پردازنده قصد استفاده از آنها را داشته باشد، اطلاعات فوق از طریق حافظهRAM در اختیار پردازنده قرار می گیرند. در ادامه پردازنده، اطلاعات و داده های مورد نیاز خود را در حافظهCache و دستورالعمل های خاص عملیاتی خود را در رجیسترها ذخیره می نماید.
تمام عناصر سخت افزاری ( پردازنده، هارد دیسك،حافظه و ...) و عناصر نرم افزاری ( سیستم عامل و...) بصورت یك گروه عملیاتی به كمك یكدیگر وظایف محوله را انجام می دهند . بدون شك در این گروه " حافظه " دارای جایگاهی خاص است . از زمانیكه كامپیوتر روشن تا زمانیكه خاموش می گردد، پردازنده بصورت پیوسته و دائم از حافظه استفاده می نماید. بلافاصله پس از روشن نمودن كامپیوتر اطلاعات اولیه ( برنامهPOST) از حافظهROM فعال شده و در ادامه وضعیت حافظه از نظر سالم بودن بررسی می گردد ( عملیات سریع خواندن، نوشتن ) .در مرحله بعد كامپیوترBIOS را از طریقROM فعال خواهد كرد.BIOS اطلاعات اولیه و ضروری در رابطه با دستگاه های ذخیره سازی، وضعیت درایوی كه می بایست فرآیند بوت از آنجا آغاز گردد، امنیت و ... را مشخص می كند.
در مرحله بعد سیستم عامل از هارد به درون حافظهRAM استقرار خواهد یافت . بخش های مهم و حیاتی سیستم عامل تا زمانیكه سیستم روشن است در حافظه ماندگار خواهند بود. در ادامه و زمانیكه یك برنامه توسط كاربر فعال می گردد، برنامه فوق در حافظهRAM مستقر خواهد شد. پس از استقرار یك برنامه در حافظه و آغاز سرویس دهی توسط برنامه مورد نظر در صورت ضرورت فایل های مورد نیاز برنامه فوق، در حافظه مستقر خواهند شد و در نهایت زمانی كه به حیات یك برنامه خاتمه داده می شود (Close) یا یك فایل ذخیره می گردد،اطلاعات بر روی یك رسانه ذخیره سازی دائم ذخیره و در نهایت حافظه از وجود برنامه و فایل های مرتبط، پاكسازی ! می گردد.
همانگونه كه اشاره گردید در هر زمان كه اطلاعاتی، مورد نیاز پردازنده باشد،اطلاعات درخواستی در حافظهRAM مستقر شده تا زمینه استفاده از آنان توسط پردازنده فراهم گردد. چرخه درخواست اطلاعات موجود درRAM توسط پردازنده ، پردازش اطلاعات توسط پردازنده و نوشتن اطلاعات جدید در حافظه یك سیكل كاملا" پیوسته بوده و در اكثر كامپیوترها سیكل فوق ممكن است در هر ثانیه میلیون ها مرتبه تكرار گردد.
نیاز به سرعت دلیلی بر وجود حافظه های متنوع
چرا حافظه در كامپیوتر تا بدین میزان متنوع و متفاوت است ؟ در پاسخ می توان به موارد ذیل اشاره نمود:
پردازنده های با سرعت بالا نیازمند دستیابی سریع و آسان به حجم بالائی از داده ها به منظور افزایش بهره وری و كارآئی خود می باشند. در صورتیكه پردازنده قادر به تامین و دستیابی به داده های مورد نیاز در زمان مورد نظر نباشد، می بایست عملیات خود را متوقف و در انتظار تامین داده های مورد نیاز باشد. پردازنده های جدید و با سرعت یك گیگا هرتز به حجم بالائی از داده ها ( میلیارد بایت در هر ثانیه ) نیاز خواهند داشت . پردازنده هائی با سرعت اشاره شده گران قیمت بوده و قطعا" اتلاف زمان مفید آنان مطلوب و قابل قبول نخواهد بود. طراحان كامپیوتر به منظور حل مشكل فوق ایده "لایه بندی حافظه" را مطرح نموده اند. در این راستا از حافظه های گران قیمت با میزان اندك استفاده و از حافظه های ارزان تر در حجم بیشتری استفاده به عمل می آید.
ارزانترین حافظه متداول، هارد دیسك است . هارد دیسك یك رسانه ذخیره سازی ارزان قیمت با توان ذخیره سازی حجم بالائی از اطلاعات است . با توجه به ارزان بودن فضای ذخیره سازی اطلاعات بر روی هارد، اطلاعات مورد نظر بر روی آنها ذخیره و با استفاده از روش های متفاوتی نظیر : حافظه مجازی می توان به سادگی و به سرعت و بدون نگرانی از فضای فیزیكی حافظهRAM ، از آنها استفاده نمود.
حافظهRAM سطح دستیابی بعدی در ساختار سلسله مراتبی حافظه است . اندازه بیت یك پردازنده نشان دهنده تعداد بایت هائی از حافظه است كه در یك لحظه می توان به آنها دستیابی داشت. مثلا" یك پردازنده شانزده بیتی، قادر به پردازش دو بایت در هر لحظه است . مگاهرتز واحد سنجش سرعت پردازش در پردازنده ها است و معادل "میلیون در هر ثانیه" است . مثلا" یك كامپیوتر 32 بیتی پنتیومiii با سرعت 800-MHz، قادر به پردازش چهار بایت بصورت همزمان و 800 میلیون بار در ثانیه است . حافظهRAM به تنهائی دارای سرعت مناسب برای همسنگ شدن با سرعت پردازنده نیست . به همین دلیل است كه از حافظه هایCache استفاده می گردد. بدیهی است هر اندازه كه سرعت حافظهRAM بالا باشد مطلوب تر خواهد بود.اغلب تراشه های مربوطه امروزه دارای سرعتی بین 50 تا 70Nanoseconds می باشند. سرعت خواندن یا نوشتن در حافظه ارتباط مستقیم با نوع حافظه استفاده شده دارد .در این راستا ممكن است از حافظه هایDRAM,SDRAM,RAMBUS استفاده گردد. سرعتRAM توسط پهنا و سرعت Bus كنترل می گردد. پهنای Bus، تعداد بایتی كه می تواند بطور همزمان برای پردازنده ارسال گردد را مشخص و سرعتBUS به تعداد دفعاتی كه می توان یك گروه از بیت ها را در هر ثانیه ارسال كرد اطلاق می گردد. سیكل منظم حركت داده ها از حافظه به سمت پردازنده راBus Cycle می گویند. مثلا" یكBus با وضعیت : 100MHz و 32 بیت، بصورت تئوری قادر به ارسال چهار بایت به پردازنده و یكصد میلیون مرتبه در هر ثانیه است . در حالیكه یكBUS شانرده بیتی 66MHZ بصورت تئوری قادر به ارسال دو بایت و 66 میلیون مرتبه در هر ثانیه است . با توجه به مثال فوق مشاهده می گردد كه با تغییر پهنای BUS از شانزده به سی و دو و سرعت از 66MHz به 100MHz سرعت ارسال داده برای پردازنده سه برابر گردید.
رجیستر وCache
با توجه به سرعت بسیار بالای پردازنده حتی در صورت استفاده ازBus عریض وسریع همچنان مدت زمانی طول خواهد كشید تا داده ها از حافظهRAM برای پردازنده ارسال گردند.Cache با این هدف طراحی شده است كه داده های مورد نیاز پردازنده را كه احتمال استفاده از آنان بیشتر است ، در دسترس بیشتری قرار دهد . عملیات فوق از طریق بكارگیری مقدار اندكی از حافظه Cache كهPrimary یاLevel 1 نامیده می شود صورت می پذیرد. ظرفیت حافظه های فوق بسیار اندك بوده و از دو كیلو بایت تا شصت و چهار كیلو بایت را شامل می گردد. نوع دومCache كهSecodray یاlevel 2 نامیده می شود بر روی یك كارت حافظه و در مجاورت پردازنده قرار می گیرد. این نوعCache دارای یك ارتباط مستقیم با پردازنده است. یك مدار كنترل كننده اختصاصی بر روی برد اصلی كه " كنترل كنندهL2 " نامیده می شود مسئولیت عملیات مربوطه را برعهده خواهد گرفت . با توجه به نوع پردازنده، اندازه حافظه فوق متغیر بوده و دارای دامنه ای بین 256Kb تا 2MB است. برخی از پردازنده های با كارائی بالا اخیرا" این نوعCache را به عنوان جزئی جداناپذیر در كنار خود دارند. ( بخشی از تراشه پردازنده ) در این نوع پردازنده ها با توجه به اینكه Cache بخشی از پردازنده محسوب می گردد، اندازه آن متغیر بوده و به عنوان یكی از مهمترین شاخص ها در كارائی پردازنده مطرح است.
نوع دیگری ازRAM با نامSRAM ( حافظ های با دستیابی تصادفی ایستا ) نیز وجود داشته كه در آغاز برایCache استفاده می گردید. این نوع حافظه ها از چندین ترانزیستور ( معمولا" چهار تا شش ) برای هر یك از سلول های حافظه خود استفاده می نمایند. حافظه های فوق دارای مجموعه ای از فلیپ فلاپ ها با دو وضعیت خواهند بود. بنابراین حافظه های فوق قادر به بازخوانی اطلاعات بصورت پیوسته نظیر حافظه هایDRAM نخواهند بود. هر یك از سلول های حافظه مادامیكه منبع تامین انرژی آنها فعال (On) باشد داده های خود را ذخیره نگاه خواهند داشت . در این حالت ضرورتی به بازخوانی اطلاعات بصورت پریودیك نخواهد بود . سرعت حافظه های فوق بسیار بالا است ، ولی به دلیل قیمت بالا ، در حال حاضر بعنوان جایگزینی استاندارد برای حافظه هایRAM مطرح نمی باشند.
انواع حافظه
حافظه ها را می توان بر اساس شاخص های متفاوتی تقسیم بندی كرد . Volatile وNonvolatile نمونه ای از این تقسیم بندی ها است . حافظه هایvolatile بلافاصله پس از خاموش شدن سیستم اطلاعات خود را از دست می دهند. و همواره برای نگهداری اطلاعات خود به منبع تامین انرژی نیاز خواهند داشت . اغلب حافظه هایRAM در این گروه قرار می گیرند. حافظه هایNonvolatile داده های خود را همچنان پس از خاموش شدن سیستم حفظ خواهند كرد. حافظهROM نمونه ای از این نوع حافظه ها است .